View Issue Details

IDProjectCategoryView StatusLast Update
0001977T99X171.00 SKB EagleSWpublic2024-08-29 11:40
Reporter(ALTech) Sangmin Choi Assigned To(ALTech) Sangmin Choi Due Date2024-08-21 13:00
PrioritynormalSeveritys4-minorReproducibilityalways
Status closedResolutionreopened 
Summary0001977: The ATT command is different between Google Assistant and Youtube Voice Search.
DescriptionThe ATT command is different between Google Assistant and Youtube Voice Search.

1. when I press the Google Assistant button, following ATT command send
5048 284.582433 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Request, Handle: 0x0059 (Unknown)

2. when I press the NUGU button, following ATT command send
2730 185.441243 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Command, Handle: 0x0024 (Unknown)

3. when I press the Youtube Voice Search icon, following ATT command send
280 91.473968 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Command, Handle: 0x0024 (Unknown)
281 91.661067 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Request, Handle: 0x0059 (Unknown)

I know the "Sent Write Command" is the ATT_WRITE_CMD and it's for mic open command of NUGU.
And, "Sent Write Request" is the ATT_WRITE_REQ and it's for mic open command of ATVV(Android TV Voice).

Could you please check why ATT_WRITE_CMD and ATT_WRITE_REQ send when I press the Youtube Voice Search icon?
It doesn't work as NUGU, so I think ATT_WRITE_CMD should not send.

If I have wrong understand about it, please let me know.

Thank you.
Sangmin Choi.
TagsNo tags attached.
Attach Tags

Users monitoring this issue

User List (ALTech) Jong-Hwa JUNG , (ALTech) JunGyu Kim , (ALTech) Wooshin Kang , (ALTech) Younkwang Jung , (SW) Kerwin Chen

Activities

(ALTech) Sangmin Choi

2024-08-13 14:28

developer  

youtube_search_icon.png (121,801 bytes)   
youtube_search_icon.png (121,801 bytes)   

(ALTech) Sangmin Choi

2024-08-13 14:31

developer   ~0016456

Hello, Kinbay,

Could you please check this ticket?
It's raised by customer.
https://jira.skbroadband.com/browse/BTVV-8110

Thank you.
Sangmin Choi.

(SW) Bcan Yeh

2024-08-13 20:31

developer   ~0016459

Last edited: 2024-08-13 20:38

Hi Sangmin,

1. Currently we can't access jira anymore. Our accounts are all expired.
2. Could you provide android log file ?
3. What is the FW version?

(ALTech) Sangmin Choi

2024-08-14 09:23

developer   ~0016461

Hello, Bcan,

1. Currently we can't access jira anymore. Our accounts are all expired.
-> Please check the description I wrote. If you have any question, please let me know.

2. Could you provide android log file ?
I attached the logcat and btsnoop_hci.log again.

// Google Assistant button
246 39.291748 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Request, Handle: 0x0059 (Unknown)

// NUGU button
3930 64.961989 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Command, Handle: 0x0024 (Unknown)

// Youtube Search Icon
6328 111.461282 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Command, Handle: 0x0024 (Unknown)
6329 111.646806 ChongqingFug_1d:bd:ff (BFX-AT100) RemoteSoluti_f0:1d:62 () ATT 15 Sent Write Request, Handle: 0x0059 (Unknown)

3. What is the FW version?
-> BFX-AT100, 15.542.130, you can download below link.
http://altserver01.duckdns.org/build_bot/BFX-AT100/OS12/15.542.130_BFX-AT100_5.4.2_Sprint2_2024-0626-111656.xml/SD/usb_bfx-at100_V15.542.130_SD.zip

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-14 09:59

developer   ~0016462

Hi Sangmin
 
We found a behavior in the logcat log that YouTube is triggering the audio_hw_primary.
So when the AtvRemote is enabled the mic will conflict with audio_hw_primary.
 
--- grep -e Atv -e skbrm -e WindowManager -e audio_hw_primary -e YouTube
08-14 10:15:20.882 system_server(3717) 3826 I WindowManager: interceptKeyTq keycode=23 interactive=true isWakeKey=false, sys.power.sleep_reason=
08-14 10:15:20.884 system_server(3717) 3825 I WindowManager: interceptKeyTi keyCode=23 down=true repeatCount=0 keyguardOn=false canceled=false policyFlags=1644167168 mDeviceId=5 mSource=1793 mScanCode=232 mCharacters=null
08-14 10:15:20.885 system_server(3717) 3825 D WindowManager: interceptSkbFuctionKeyBeforeDispatching keycode = 23
08-14 10:15:20.885 system_server(3717) 3825 D WindowManager: keycode : 23 - processed. by skb function key
08-14 10:15:20.938 system_server(3717) 3826 I WindowManager: interceptKeyTq keycode=23 interactive=true keyguardActive=false policyFlags=22000000
08-14 10:15:20.938 system_server(3717) 3826 I WindowManager: interceptKeyTq keycode=23 interactive=true isWakeKey=false, sys.power.sleep_reason=
08-14 10:15:20.939 (0) - W : [ 131.724498@3]- --> skbrm_raw_event: id=0x03, size=5, data= 03 00 00 00 00
08-14 10:15:20.938 system_server(3717) 3825 I WindowManager: interceptKeyTi keyCode=23 down=false repeatCount=0 keyguardOn=false canceled=false policyFlags=1644167168 mDeviceId=5 mSource=1793 mScanCode=232 mCharacters=null
08-14 10:15:20.939 system_server(3717) 3825 D WindowManager: interceptSkbFuctionKeyBeforeDispatching keycode = 23
08-14 10:15:20.939 system_server(3717) 3825 D WindowManager: keycode : 23 - processed. by skb function key
08-14 10:15:21.085 android.hardware.audio.service-droidlogic(3416) 3656 D audio_hw_primary: adev_open_input_stream: enter: devices(0x80000010) channel_mask(0x10) rate(16000) format(0x1) source(6)
08-14 10:15:21.085 android.hardware.audio.service-droidlogic(3416) 3656 D audio_hw_primary: check_input_parameters(sample_rate=16000, format=1, channel_count=1, devices = 80000010)
08-14 10:15:21.085 android.hardware.audio.service-droidlogic(3416) 3656 I audio_hw_primary: adev_open_input_stream: use RC audio HAL
08-14 10:15:21.085 android.hardware.audio.service-droidlogic(3416) 3656 D audio_hw_primary: adev_open_input_stream: exit
08-14 10:15:21.123 android.hardware.audio.service-droidlogic(3416) 3656 D audio_hw_primary: bluetooth voice search is in use, bypass adev_create_audio_patch()!!
08-14 10:15:21.136 (0) - I : [ 131.920101@3]- skbrm 0005:005D:0004.0001: enable remote mic
08-14 10:15:21.142 com.google.android.tv.remote.service(4131) - I AtvRemote.ABridgeX: Ad hoc audio policy is being registered
08-14 10:15:21.149 android.hardware.audio.service-droidlogic(3416) 3656 D audio_hw_primary: adev_set_parameters(0xf57d1840, 1204128379:ap:1mixr:0=;connect=32768)
08-14 10:15:21.149 android.hardware.audio.service-droidlogic(3416) 3656 I audio_hw_primary: adev_set_parameters(kv: 1204128379:ap:1mixr:0=;connect=32768)
08-14 10:15:21.309 com.google.android.tv.remote.service(4131) - V AtvRemote.ABridgeX: AudioPolicy is registered in 166ms
08-14 10:15:21.321 com.google.android.tv.remote.service(4131) - V AtvRemote.BleDeviceConnection: Sending command 0x0C to 14:4E:34:F0:1D:62
08-14 10:15:21.382 com.google.android.tv.remote.service(4131) 8388 D AtvRemote.AudioTrackWrapper: Created Audio Track in 57ms
08-14 10:15:21.584 com.skb.tv(4703) - D Appstats: [stats] current= YouTube, prev = 권한 관리자, pPackageName : com.google.android.permissioncontroller
08-14 10:15:21.772 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: adev_set_parameters(0xf57d1840, compensate_video_enable=1)
08-14 10:15:21.772 android.hardware.audio.service-droidlogic(3416) - I audio_hw_primary: adev_set_parameters(kv: compensate_video_enable=1)
08-14 10:15:21.772 android.hardware.audio.service-droidlogic(3416) - I audio_hw_primary: adev_set_parameters, ret=-2, value=
08-14 10:15:22.513 com.google.android.tv.remote.service(4131) 4161 V AtvRemote.BleDeviceConnection: GATT command is sent in 1201ms
08-14 10:15:22.514 com.google.android.tv.remote.service(4131) 4161 I AtvRemote.VoiceOverBle: Ongoing audio session cannot be interrupted
08-14 10:15:22.515 com.google.android.tv.remote.service(4131) 4161 W AtvRemote.VoiceOverBle: Received mic open error (code: F80, total: 0, skipped: 0, delay: +1203ms)
08-14 10:15:22.516 com.google.android.tv.remote.service(4131) 8388 D AtvRemote.AudioTrackWrapper: AudioTrack paused in 1ms (underrun count: 0)
08-14 10:15:22.520 com.google.android.tv.remote.service(4131) 4161 D AtvRemote.ABridgeX: AudioPolicy is being unregistered
08-14 10:15:22.521 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: adev_set_parameters(0xf57d1840, 1204128379:ap:1mixr:0=;disconnect=32768)
08-14 10:15:22.521 android.hardware.audio.service-droidlogic(3416) - I audio_hw_primary: adev_set_parameters(kv: 1204128379:ap:1mixr:0=;disconnect=32768)
08-14 10:15:30.243 (0) - I : [ 141.026433@0]- skbrm 0005:005D:0004.0001: disable remote mic
08-14 10:15:30.243 android.hardware.audio.service-droidlogic(3416) - I audio_hw_primary: ++adev_release_audio_patch: handle(0)
08-14 10:15:30.243 android.hardware.audio.service-droidlogic(3416) - E audio_hw_primary: Can't get patch in list
08-14 10:15:30.258 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: adev_close_input_stream: enter: dev(0xf57d1840) stream(0xf1f02950)
08-14 10:15:30.258 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: in_standby: enter: stream(0xf1f02950)
08-14 10:15:30.258 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: do_input_standby(0xf1f02950) in->standby = 1
08-14 10:15:30.258 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: in_standby: exit
08-14 10:15:30.258 android.hardware.audio.service-droidlogic(3416) - D audio_hw_primary: adev_close_input_stream: exit
---
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-14 15:29

developer   ~0016463

Hello, Kinbay,

I understood that Youtube triggered the audio_hw_primary and Fii driver(skbrm??) send "MIC START(0x26)" command to RCU.
Does your driver or library has source code which send "MIC START(0x26)" command to RCU?

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-14 16:48

developer   ~0016465

Hi Sangmin

You can find the library open mic error message in the log.
===> AtvRemote.VoiceOverBle: Received mic open error (code: F80, total: 0, skipped: 0, delay: +1203ms)
So I think the mic must be started by the audio_hw_primary driver.
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-14 17:01

developer   ~0016466

Hello, Kinbay,

What do you mean? AtvRemote should use audio_hw_primary driver ?

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-15 08:50

developer   ~0016468

Hi Sangmin
 
AtvRemote should use audio_hw_primary driver?
=>No, below is some behavior.
    1. When pressing the Google Assistant button only AtvRemote will process.
    2. When pressing the NUGU button only the audio_hw_primary will process.
    3. When pressing the YouTube Voice Search icon, audio_hw_primary will start first, and then AtvRemote start and trigger an error.
As you say, YouTube should not send the ATT_WRITE_CMD it means should not call the audio_hw_primary.
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-15 13:56

developer   ~0016471

Hello, Kinbay,

    3. When pressing the YouTube Voice Search icon, audio_hw_primary will start first, and then AtvRemote start and trigger an error.
As you say, YouTube should not send the ATT_WRITE_CMD it means should not call the audio_hw_primary.
=> So, it means Youtube APK should be modified. For that, you should create Google Issue Tracker.
But, I think Google never fix this kind of behavior.

How about this?
If Youtube call audio_hw_primary for mic open, ignore it. Because Youtube open the mic using AtvRemote service.
Or, if NUGU service call audio_hw_primary for mic open, then send ATT_WRITE_CMD.

Actually, other vendor(INTEK) didn't send ATT_WRITE_CMD when I press the Youtube Voice Icon.
I think they already ignore it.

Please check my comment and let me know your opinion.

Thank you.
Sangmin Choi.

(ALTech) Sangmin Choi

2024-08-19 08:57

developer   ~0016475

Hello, Kinbay,

Could you please update this ticket?

Thank you.
Sangmin Choi.

(ALTech) Sangmin Choi

2024-08-21 08:47

developer   ~0016510

Hello, Kinbay,

Could you please update this ticket?

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-21 11:52

developer   ~0016515

Hi Sangmin
 
I upload the test image to FTP.
ftp://release_by_fxn/tmp/mantis1977/usb_bfx-at100_V515.542.19t2_SD.zip
Please help me to test it.
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-21 12:39

developer   ~0016516

Hello, Kinbay,

Thank you for update.

But, this firmware is built at BFX-AT100_5.4.2_CUG branches.
CUG firmware can't operate the NUGU feature.

Could you please build the firmware at BFX-AT100_5.4.2_Sprint2 branches with your modification?

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-21 15:24

developer   ~0016522

Hi Sangmin
 
I rebuilt on the UI542 branch and uploaded it to FTP.
ftp://release_by_fxn/tmp/mantis1977/usb_bfx-at100_V15.542.65t21_SD.zip
Please check it, thanks.
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-21 16:56

developer   ~0016525

Hello, Kinbay,

I think it's fixed correctly.
I will let you know our QA's test result.

Thank you.
Sangmin Choi.

(ALTech) Sangmin Choi

2024-08-22 14:00

developer   ~0016539

Hello, Kinbay,

There is no specific issue at our QA's test result.

Could you please apply it to BFX-AT100_5.4.3 branches?
Please use "[BPM-36179]" for the prefix of commit message.

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-22 14:35

developer   ~0016542

Hi Sangmin
 
I pushed the patch to the BFX-AT100_5.4.3 branch.
Please check it.
 
BR,
Kinbay

(ALTech) Sangmin Choi

2024-08-22 14:49

developer   ~0016543

Hello, Kinbay,

Thank you, I close this issue.
And, this symptom also happens at swan, so I will create mantis for swan soon.
Please help someone who is assigned for swan understand this issue.

Thank you.
Sangmin Choi.

(SW) Kinbay Wu

2024-08-29 11:39

developer   ~0016601

Add the solution patch to note it.

(SW) Kinbay Wu

2024-08-29 11:39

developer   ~0016602

Last edited: 2024-08-29 11:40

Path : frameworks/av
0001-BPM-36179-MT-1977-Fix-the-ATT-command-sent-twice-whe.patch (2,097 bytes)   
From f3a6cafa0e4dc92b450ad5c89c32e77dfd3eed2a Mon Sep 17 00:00:00 2001
From: Kinbay_Wu <kinbay.ty.wu@fii-foxconn.com>
Date: Thu, 22 Aug 2024 11:18:33 +0800
Subject: [PATCH] [BPM-36179] [MT-1977] Fix the ATT command sent twice when
 using YouTube Voice Search

Signed-off-by: Kinbay_Wu <kinbay.ty.wu@fii-foxconn.com>
---
 .../audiopolicy/enginedefault/src/Engine.cpp     | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/services/audiopolicy/enginedefault/src/Engine.cpp b/services/audiopolicy/enginedefault/src/Engine.cpp
index 1f8f082d8d..787bbdbc30 100644
--- a/services/audiopolicy/enginedefault/src/Engine.cpp
+++ b/services/audiopolicy/enginedefault/src/Engine.cpp
@@ -541,8 +541,22 @@ sp<DeviceDescriptor> Engine::getDeviceForInputSource(audio_source_t inputSource)
         break;
 
     case AUDIO_SOURCE_VOICE_RECOGNITION:
-    case AUDIO_SOURCE_VOICE_RECOGNITION_NUGU: //Vas add for NUGU support;River 2019/08/06
     case AUDIO_SOURCE_UNPROCESSED:
+        if (audio_is_bluetooth_out_sco_device(commDeviceType)) {
+            device = availableDevices.getDevice(
+                    AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, String8(""), AUDIO_FORMAT_DEFAULT);
+            if (device != nullptr) break;
+        }
+        // we need to make BLUETOOTH_BLE has higher priority than BUILTIN_MIC,
+        // because sometimes user want to do voice search by bt remote
+        // even if BUILDIN_MIC is available.
+        device = availableDevices.getFirstExistingDevice({
+                AUDIO_DEVICE_IN_BLE_HEADSET,
+                AUDIO_DEVICE_IN_USB_HEADSET, AUDIO_DEVICE_IN_USB_DEVICE,
+                AUDIO_DEVICE_IN_BLUETOOTH_BLE, AUDIO_DEVICE_IN_BUILTIN_MIC, 
+                AUDIO_DEVICE_IN_WIRED_HEADSET});
+        break;
+    case AUDIO_SOURCE_VOICE_RECOGNITION_NUGU: //Vas add for NUGU support;River 2019/08/06
         if (audio_is_bluetooth_out_sco_device(commDeviceType)) {
             device = availableDevices.getDevice(
                     AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, String8(""), AUDIO_FORMAT_DEFAULT);
-- 
2.25.1

Issue History

Date Modified Username Field Change
2024-08-13 14:28 (ALTech) Sangmin Choi New Issue
2024-08-13 14:28 (ALTech) Sangmin Choi File Added: youtube_search_icon.png
2024-08-13 14:28 (ALTech) Sangmin Choi File Added: btsnoop_hci_BFX-AT100_BRM-BA03.log
2024-08-13 14:29 (ALTech) Sangmin Choi Assigned To => (SW) Kinbay Wu
2024-08-13 14:29 (ALTech) Sangmin Choi Status new => assigned
2024-08-13 14:29 (ALTech) Sangmin Choi Issue Monitored: (SW) Kerwin Chen
2024-08-13 14:30 (ALTech) Sangmin Choi Issue Monitored: (ALTech) Wooshin Kang
2024-08-13 14:30 (ALTech) Sangmin Choi Issue Monitored: (ALTech) Younkwang Jung
2024-08-13 14:30 (ALTech) Sangmin Choi Issue Monitored: (ALTech) Jong-Hwa JUNG
2024-08-13 14:30 (ALTech) Sangmin Choi Issue Monitored: (ALTech) JunGyu Kim
2024-08-13 14:31 (ALTech) Sangmin Choi Note Added: 0016456
2024-08-13 19:43 (SW) Kerwin Chen Assigned To (SW) Kinbay Wu => (SW) Bcan Yeh
2024-08-13 20:31 (SW) Bcan Yeh Note Added: 0016459
2024-08-13 20:38 (SW) Bcan Yeh Note Edited: 0016459
2024-08-14 09:16 (SW) Kerwin Chen Assigned To (SW) Bcan Yeh => (SW) Kinbay Wu
2024-08-14 09:23 (ALTech) Sangmin Choi Note Added: 0016461
2024-08-14 09:23 (ALTech) Sangmin Choi File Added: btsnoop_hci_BFX-AT100_20240814.log
2024-08-14 09:23 (ALTech) Sangmin Choi File Added: logcat_BFX-AT100_20240814.log
2024-08-14 09:59 (SW) Kinbay Wu Note Added: 0016462
2024-08-14 15:29 (ALTech) Sangmin Choi Note Added: 0016463
2024-08-14 16:48 (SW) Kinbay Wu Note Added: 0016465
2024-08-14 17:01 (ALTech) Sangmin Choi Note Added: 0016466
2024-08-15 08:50 (SW) Kinbay Wu Note Added: 0016468
2024-08-15 13:56 (ALTech) Sangmin Choi Note Added: 0016471
2024-08-19 08:57 (ALTech) Sangmin Choi Note Added: 0016475
2024-08-20 09:21 (ALTech) Sangmin Choi Due Date 2024-08-16 13:00 => 2024-08-21 13:00
2024-08-21 08:47 (ALTech) Sangmin Choi Note Added: 0016510
2024-08-21 11:52 (SW) Kinbay Wu Note Added: 0016515
2024-08-21 12:39 (ALTech) Sangmin Choi Note Added: 0016516
2024-08-21 15:24 (SW) Kinbay Wu Note Added: 0016522
2024-08-21 16:56 (ALTech) Sangmin Choi Note Added: 0016525
2024-08-22 14:00 (ALTech) Sangmin Choi Note Added: 0016539
2024-08-22 14:35 (SW) Kinbay Wu Note Added: 0016542
2024-08-22 14:45 (ALTech) Sangmin Choi Assigned To (SW) Kinbay Wu => (ALTech) Sangmin Choi
2024-08-22 14:45 (ALTech) Sangmin Choi Status assigned => closed
2024-08-22 14:45 (ALTech) Sangmin Choi Resolution open => fixed
2024-08-22 14:46 (ALTech) Sangmin Choi Status closed => feedback
2024-08-22 14:46 (ALTech) Sangmin Choi Resolution fixed => reopened
2024-08-22 14:49 (ALTech) Sangmin Choi Status feedback => closed
2024-08-22 14:49 (ALTech) Sangmin Choi Note Added: 0016543
2024-08-29 11:39 (SW) Kinbay Wu Status closed => feedback
2024-08-29 11:39 (SW) Kinbay Wu Note Added: 0016601
2024-08-29 11:39 (SW) Kinbay Wu Note Added: 0016602
2024-08-29 11:39 (SW) Kinbay Wu File Added: 0001-BPM-36179-MT-1977-Fix-the-ATT-command-sent-twice-whe.patch
2024-08-29 11:40 (SW) Kinbay Wu Note Edited: 0016602
2024-08-29 11:40 (SW) Kinbay Wu Status feedback => closed